package fox.framework.rpc.client;

import java.util.List;

/**
 * Rpc注册器
 *
 * @author cuichao
 * @Description: RpcRegister
 * @Date: create in 2021/1/4 15:59
 * @see Registrable
 * 配合Registrable 客户端注册接口为Rpc-Client获取到注册中心的数据
 */
public interface RpcRegister {

    /**
     * 注册当前Rpc服务
     *
     * @param address
     * @param metaspaces
     * @throws Exception
     */
    void register(String address, List<String> metaspaces) throws Exception;

    /**
     * 根据传入的元空间列表获取Rpc真实地址
     *
     * @param metaSpaces
     * @return
     */
    void fetch(List<String> metaSpaces);

    /**
     * 启动注册器
     *
     * @throws Exception
     */
    void run() throws Exception;

    /**
     * 移除Rpc服务
     *
     * @throws Exception
     */
    void close() throws Exception;


}
